<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qquickitem.cpp -->
  <title>KeyNavigation QML 类型 | Qt Quick 5.12.3</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.12</a></td><td ><a href="qtquick-index.html">Qt Quick 模块</a></td><td ><a href="qtquick-qmlmodule.html">QML类型</a></td><td >KeyNavigation QML 类型</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtquick-index.html">Qt 5.12.3 参考指南</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">目录</a></h3>
<ul>
<li class="level1"><a href="#properties">属性</a></li>
<li class="level1"><a href="#details">详细信息</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">KeyNavigation QML 类型</h1>
<span class="subtitle"></span>
<!-- $$$KeyNavigation-brief -->
<p>Supports key navigation by arrow keys. <a href="#details">更多...</a></p>
<!-- @@@KeyNavigation -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> 导入语句：</td><td class="memItemRight bottomAlign"> import QtQuick 2.12</td></tr></table></div><ul>
<li><a href="qml-qtquick-keynavigation-members.html">所有成员的列表，包括继承成员</a></li>
</ul>
<a name="properties"></a>
<h2 id="properties">属性</h2>
<ul>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#backtab-prop">backtab</a></b></b> : Item</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#down-prop">down</a></b></b> : Item</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#left-prop">left</a></b></b> : Item</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#priority-prop">priority</a></b></b> : enumeration</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#right-prop">right</a></b></b> : Item</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#tab-prop">tab</a></b></b> : Item</li>
<li class="fn"><b><b><a href="qml-qtquick-keynavigation.html#up-prop">up</a></b></b> : Item</li>
</ul>
<!-- $$$KeyNavigation-description -->
<a name="details"></a>
<h2 id="details">详细信息</h2>
<p>Key-based user interfaces commonly allow the use of arrow keys to navigate between focusable items. The <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> attached property enables this behavior by providing a convenient way to specify the item that should gain focus when an arrow or tab key is pressed.</p>
<p>The following example provides key navigation for a 2x2 grid of items:</p>
<pre class="qml">

  import QtQuick 2.0

  <span class="type"><a href="qml-qtquick-grid.html">Grid</a></span> {
      <span class="name">width</span>: <span class="number">100</span>; <span class="name">height</span>: <span class="number">100</span>
      <span class="name">columns</span>: <span class="number">2</span>

      <span class="type"><a href="qml-qtquick-rectangle.html">Rectangle</a></span> {
          <span class="name">id</span>: <span class="name">topLeft</span>
          <span class="name">width</span>: <span class="number">50</span>; <span class="name">height</span>: <span class="number">50</span>
          <span class="name">color</span>: <span class="name">focus</span> ? <span class="string">&quot;red&quot;</span> : <span class="string">&quot;lightgray&quot;</span>
          <span class="name">focus</span>: <span class="number">true</span>

          <span class="name">KeyNavigation</span>.right: <span class="name">topRight</span>
          <span class="name">KeyNavigation</span>.down: <span class="name">bottomLeft</span>
      }

      <span class="type"><a href="qml-qtquick-rectangle.html">Rectangle</a></span> {
          <span class="name">id</span>: <span class="name">topRight</span>
          <span class="name">width</span>: <span class="number">50</span>; <span class="name">height</span>: <span class="number">50</span>
          <span class="name">color</span>: <span class="name">focus</span> ? <span class="string">&quot;red&quot;</span> : <span class="string">&quot;lightgray&quot;</span>

          <span class="name">KeyNavigation</span>.left: <span class="name">topLeft</span>
          <span class="name">KeyNavigation</span>.down: <span class="name">bottomRight</span>
      }

      <span class="type"><a href="qml-qtquick-rectangle.html">Rectangle</a></span> {
          <span class="name">id</span>: <span class="name">bottomLeft</span>
          <span class="name">width</span>: <span class="number">50</span>; <span class="name">height</span>: <span class="number">50</span>
          <span class="name">color</span>: <span class="name">focus</span> ? <span class="string">&quot;red&quot;</span> : <span class="string">&quot;lightgray&quot;</span>

          <span class="name">KeyNavigation</span>.right: <span class="name">bottomRight</span>
          <span class="name">KeyNavigation</span>.up: <span class="name">topLeft</span>
      }

      <span class="type"><a href="qml-qtquick-rectangle.html">Rectangle</a></span> {
          <span class="name">id</span>: <span class="name">bottomRight</span>
          <span class="name">width</span>: <span class="number">50</span>; <span class="name">height</span>: <span class="number">50</span>
          <span class="name">color</span>: <span class="name">focus</span> ? <span class="string">&quot;red&quot;</span> : <span class="string">&quot;lightgray&quot;</span>

          <span class="name">KeyNavigation</span>.left: <span class="name">bottomLeft</span>
          <span class="name">KeyNavigation</span>.up: <span class="name">topRight</span>
      }
  }

</pre>
<p>The top-left item initially receives focus by setting <a href="qml-qtquick-item.html#focus-prop">focus</a> to <code>true</code>. When an arrow key is pressed, the focus will move to the appropriate item, as defined by the value that has been set for the <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> <a href="qml-qtquick-keynavigation.html#left-prop">left</a>, <a href="qml-qtquick-keynavigation.html#right-prop">right</a>, <a href="qml-qtquick-keynavigation.html#up-prop">up</a> or <a href="qml-qtquick-keynavigation.html#down-prop">down</a> properties.</p>
<p>Note that if a <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> attached property receives the key press and release events for a requested arrow or tab key, the event is accepted and does not propagate any further.</p>
<p>By default, <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> receives key events after the item to which it is attached. If the item accepts the key event, the <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> attached property will not receive an event for that key. Setting the <a href="qml-qtquick-keynavigation.html#priority-prop">priority</a> property to <code>KeyNavigation.BeforeItem</code> allows the event to be used for key navigation before the item, rather than after.</p>
<p>If the item to which the focus is switching is not enabled or visible, an attempt will be made to skip this item and focus on the next. This is possible if there are a chain of items with the same <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> handler. If multiple items in a row are not enabled or visible, they will also be skipped.</p>
<p><a href="qml-qtquick-keynavigation.html">KeyNavigation</a> will implicitly set the other direction to return focus to this item. So if you set <a href="qml-qtquick-keynavigation.html#left-prop">left</a> to another item, <a href="qml-qtquick-keynavigation.html#right-prop">right</a> will be set on that item's <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> to set focus back to this item. However, if that item's <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> has had right explicitly set then no change will occur. This means that the example above could achieve the same behavior without specifying <a href="qml-qtquick-keynavigation.html">KeyNavigation</a>.right or <a href="qml-qtquick-keynavigation.html">KeyNavigation</a>.down for any of the items.</p>
<p><b>请参考 </b><a href="qml-qtquick-keys.html">Keys attached property</a>。</p>
<!-- @@@KeyNavigation -->
<h2>属性文档</h2>
<!-- $$$backtab -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="backtab-prop">
<td class="tblQmlPropNode"><p>
<a name="backtab-prop"></a><span class="name">backtab</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the Shift+Tab key combination (Backtab) is pressed.</p>
</div></div><!-- @@@backtab -->
<br/>
<!-- $$$down -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="down-prop">
<td class="tblQmlPropNode"><p>
<a name="down-prop"></a><span class="name">down</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the down cursor key is pressed.</p>
</div></div><!-- @@@down -->
<br/>
<!-- $$$left -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="left-prop">
<td class="tblQmlPropNode"><p>
<a name="left-prop"></a><span class="name">left</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the left cursor key is pressed.</p>
</div></div><!-- @@@left -->
<br/>
<!-- $$$priority -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="priority-prop">
<td class="tblQmlPropNode"><p>
<a name="priority-prop"></a><span class="name">priority</span> : <span class="type"><a href="../qtqml/qml-enumeration.html">enumeration</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property determines whether the keys are processed before or after the attached item's own key handling.</p>
<ul>
<li><a href="qml-qtquick-keynavigation.html">KeyNavigation</a>.BeforeItem - process the key events before normal item key processing. If the event is used for key navigation, it will be accepted and will not be passed on to the item.</li>
<li><a href="qml-qtquick-keynavigation.html">KeyNavigation</a>.AfterItem (default) - process the key events after normal item key handling. If the item accepts the key event it will not be handled by the <a href="qml-qtquick-keynavigation.html">KeyNavigation</a> attached property handler.</li>
</ul>
</div></div><!-- @@@priority -->
<br/>
<!-- $$$right -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="right-prop">
<td class="tblQmlPropNode"><p>
<a name="right-prop"></a><span class="name">right</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the right cursor key is pressed.</p>
</div></div><!-- @@@right -->
<br/>
<!-- $$$tab -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="tab-prop">
<td class="tblQmlPropNode"><p>
<a name="tab-prop"></a><span class="name">tab</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the Tab key is pressed.</p>
</div></div><!-- @@@tab -->
<br/>
<!-- $$$up -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="up-prop">
<td class="tblQmlPropNode"><p>
<a name="up-prop"></a><span class="name">up</span> : <span class="type"><a href="qml-qtquick-item.html">Item</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the item to assign focus to when the up cursor key is pressed.</p>
</div></div><!-- @@@up -->
<br/>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
